<template>
	<view>
		<!-- 该代码是使用小程序的原生组件 swiper 创建一个轮播图。
		swiper 组件用于创建轮播图容器，其中的图片项将在轮播过程中展示。
		:indicator-dots="true" 表示轮播图下方显示轮播指示点，通过设置为 true 显示，false 则不显示。
		:autoplay="true" 表示自动播放轮播图，通过设置为 true 开启自动播放，false 则不自动播放。
		:interval="3000" 表示轮播图自动播放的间隔时间，这里设置为 3000 毫秒（3秒）。
		:duration="1000" 表示轮播图的切换动画时长，这里设置为 1000 毫秒（1秒）。
		circular="true" 表示衔接滚动
		 -->
		<!-- 轮播图区域 -->
		<swiper :indicator-dots="true" :autoplay="true" :interval="3000" :duration="1000" 
		:circular="true">
		  <!-- 循环渲染轮播图的 item 项 -->
		  <swiper-item v-for="(item, i) in swiperList" :key="i">
			<navigator class="swiper-item" :url="'/subpkg/goods_detail/goods_detail?goods_id='+item.goods_id">
			  <!-- 动态绑定图片的 src 属性 -->
			  <image :src="item.image_src"></image>
			</navigator> 
		  </swiper-item>
		</swiper>
		
		<!-- 导航区域 -->
		<view class="nav-list">
			<view class="nav-item" v-for="(item,i) in navList" :key="i"
			@click="navClickHandler(item)">
				<image :src="item.image_src" class="nav-img"></image>
			</view>
			
		</view>
		
		<!-- 楼层区域 -->
		<view class="floor-list">
			<view class="floor-item" v-for="(item,i) in floorList" :key="i">
				<image :src="item.floor_title.image_src" class="floor-title">
					<!-- 楼层图片区域 -->
					<view class="floor-img-box">
						<!-- 左 -->
						<navigator class="left-img-box" :url="item.product_list[0].url">
							<image :src="item.product_list[0].image_src" 
							:style="{width:item.product_list[0].image_width + 'rpx'}" mode="widthFix"></image>
						</navigator>
						<!-- 右 -->
						<view class="right-img-box">
							<navigator class="right-img-item" v-for="(item2,i2) in item.product_list" 
							:key="i2"  v-if="i2!==0" :url="item2.url">
								<image :src="item2.image_src" mode="widthFix" :style="{width:item2.image_width + 'rpx'}"></image>
							</navigator>
						</view>
						
					</view>
				</image>
			</view>
		</view>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				// 轮播图列表
				swiperList:[],
				// 导航数据列表
				navList:[],
				// 楼层数据
				floorList:[]
			}
		},
		// onload生命周期
		onLoad(){
			this.getSwiperList()
			this.getNavList()
			this.getFloorList()
		},
		methods: {
			async getSwiperList(){
				const {data:res}=await uni.$http.get('/api/public/v1/home/swiperdata')
				console.log(res.message)
				// 请求失败
				if(res.meta.status!==200){
					return uni.$showMsg()
					// showToast 提示框
					// return uni.showToast({
					// 	title:'请求数据失败',
					// 	// 1.5s后隐藏
					// 	duration:1500,
					// 	icon:'none'
					// })
				}
				// 请求成功
				 this.swiperList = res.message
				 // return uni.$showMsg('数据请求成功')
			},
			async getNavList(){
				const {data:res} =await uni.$http.get('/api/public/v1/home/catitems')
					console.log(res)
					if(res.meta.status!=200){
						return uni.$showMsg()
					}else{
						this.navList=res.message
					}
				
			},
			navClickHandler(item){
				console.log(item)
				if(item.name ==='分类'){
					// 跳转到 tabBar 页面，并关闭其他所有非 tabBar 页面。
					uni.switchTab({
						url:'/pages/cate/cate'
					})
				}
			},
			// 获取楼层数据方法
			async getFloorList(){
				const {data:res}=await uni.$http.get('/api/public/v1/home/floordata')
				console.log(res,'floorList')
				if(res.meta.status!=200){
					return uni.$showMsg()
				}else{
					// 对数据进行处理,第一个foreach循坏遍历当前的数据并用floor进行接收
					res.message.forEach(floor=>{
						console.log(floor,'floor')
						// foreach循坏遍历floor数组里面的数据并用prod进行接收
						floor.product_list.forEach(prod=>{
							console.log(prod,'prod')
							prod.url='/subpkg/goods_list/goods_list?' + prod.navigator_url.split('?')[1]
						})
					})
					this.floorList=res.message
				}
			}
			
		}
	}
</script>

<style lang="scss">
	swiper{
		height: 330rpx;
		.swiper-item,image{
			width: 100%;
			height: 100%;
		}
	}
	.nav-list{
		display: flex;
		justify-content: space-around;
		margin: 15px 0;
		
		.nav-img{
			width:128rpx;
			height: 140rpx;
		}
	}
	.floor-title{
		height: 60rpx;
		width: 100%;
		display: flex;
	}
	.floor-img-box{
		display: flex;
		margin-left: 10rpx;
		.right-img-box{
			display: flex;
			flex-wrap:wrap;
			justify-content: space-around;
		}
	}

	

</style>
